The way in which users interact with modern computing devices such as personal computers, smart phones, and tablet computers is becoming increasingly sophisticated. For example, traditional client device input mechanisms such as keyboards, computer mice, and numeric keypads are now frequently being supplemented and sometimes replaced entirely by user interfaces that detect gestures as input. Common gesture-based inputs include, for example, the motion of a user's finger on a touch-enabled interface, the detected physical movement of a device by a user, and a user performing bodily motions that are visually detected by a camera connected to a device. Furthermore, the increasing variety and capabilities of input sensors available on client devices is leading to a nearly limitless range of such gesture-based input methods.
However, despite the advances in the user interface experience enabled by gesture-based input mechanisms, existing gesture-based input systems on client devices are generally restrictive in their implementation. Users of such gesture-based input systems generally lack the ability to intuitively control the association between gestures and the actions performed in response to a client device detecting the performance of a particular gesture. Typically, gesture-to-action associations are programmed by application developers into the system and applications running on a client device and the only gesture-to-action mappings available to users are those provided by the application developers. Furthermore, the device on which the actions are performed in response to a particular gesture is generally confined to the device detecting performance of the gesture. These restrictions fail to recognize that users typically interact on a daily basis with a number of separate devices in many different settings and would benefit from customizable gesture-based interactions on and between those devices.
Furthermore, existing gesture-based input systems generally fail to take advantage of information related to the operating context of client devices in order to better customize gesture-to-action mappings. The sensors available on modern client devices make available a wealth of information related to the environment in which the device is currently being used. However, existing gesture-based input systems typically employ the same gesture-to-action mappings irrespective of changes in the operating environment context of a device and without taking into consideration user preferences related to those contexts.
The approaches described in this section are approaches that could be pursued, but not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated, it should not be assumed that any of the approaches described in this section qualify as prior art merely by virtue of their inclusion in this section.